package careerSession;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

import descriptor.CompaniesListDescriptor;
import descriptor.CompanyDescriptor;
import descriptor.CompanySupDescriptor;
import descriptor.CompanySupsListDescriptor;
import descriptor.DegreeListDescriptor;
import descriptor.FeedbackDescriptor;
import descriptor.FeedbackListDescriptor;
import descriptor.OfferDescriptor;
import descriptor.OfferListDescriptor;
import descriptor.RecruiterDescriptor;
import descriptor.RecruitersListDescriptor;
import descriptor.StudentListDescriptor;


/**
 * CareerSession interface
 * 
 * @author Mamadou TOURE
 * 
 * The CareerSession interface defines all the business method that a client can invoke remotely 
 * on the object (CareerSessionBean).
 * 
 */
public interface CareerSession extends EJBObject 
{
	
	 public boolean isLogged() throws RemoteException;
	 public void setLogged() throws RemoteException;
	 public String getSurName() throws RemoteException;
	 public String getFirstname() throws RemoteException;
	 public String getLogin() throws RemoteException;
	 public String getMail() throws RemoteException;
	 public String getPassword() throws RemoteException;
	 public void updateMail(String email) throws RemoteException;
	 public void updatePasswd(String passwd) throws RemoteException;
	 
	 public CompanyDescriptor getCompany(int CompID) throws RemoteException;
	 public CompaniesListDescriptor getAllCompanies() throws RemoteException;
	 public int createCompany(String name, String address, String phone, String email, String cityName, String countryName, String sectorName) throws RemoteException;
	 public boolean updateCompany(int id, String name, String address, String phone, String email, String cityName, String countryName, String sectorName) throws RemoteException;
	 public boolean deleteCompany(int id) throws RemoteException;
	 public RecruitersListDescriptor getAllRecruiters(int compID) throws RemoteException;
	 public int createRecruiter(String firstName,String name, String login,String passwd,String email, int compID) throws RemoteException;
	 public boolean updateRecruiter(int id, String firstname,String name, String login,  String email, int compID) throws RemoteException;
	 public boolean deleteRecruiter(int id) throws RemoteException;
	 public CompanySupsListDescriptor getAllSupervisors(int compID) throws RemoteException;
	 public int createSupervisor(String firstName,String name, String login,String passwd,String email, int compID) throws RemoteException;
	 public boolean updateSupervisor(int id, String firstname,String name, String login,  String email, int compID) throws RemoteException;
	 public boolean deleteSupervisor(int id) throws RemoteException;
	 public OfferListDescriptor getAllOffers(int compID) throws RemoteException;
	 public int createOffer(String name,String description, String dateOfStart, String dateOfEnd, int compID, int recruiterID, int supervisorID) throws RemoteException;
	 public boolean updateOffer(int id,String name,String description, String dateOfStart, String dateOfEnd,  int compID, int recruiterID, int supervisorID) throws RemoteException;
	 public boolean deleteOffer(int id) throws RemoteException;
	 public FeedbackListDescriptor getAllFeedbackStudent(int studenID) throws RemoteException;
	 public FeedbackListDescriptor getAllFeedbackDegree(int degreeID) throws RemoteException;
	 
	 public RecruiterDescriptor getRecruiter(int recruiterID) throws RemoteException;
	 public CompanySupDescriptor getSupervisor(int supervisorID) throws RemoteException;
	 public OfferDescriptor getOffer(int offerID) throws RemoteException;
	 public FeedbackDescriptor getFeedback(int feedbackID) throws RemoteException;
	
	 public StudentListDescriptor getAllStudents() throws RemoteException;
	 public DegreeListDescriptor getAllDegrees() throws RemoteException;
		
		
}
